Un articolo per dimostrarti quanto un hack di livello 1 possa cambiarti il modo di vedere un PC, anche solo per un attimo. Almeno spero. Non ci sono cose più semplici di insegnare ad uno scimpanzè come guadagnarsi una banana, lo sapevate? Nella cultura degli hacker esiste una cosa chiamata one banana job. È un modo per dire: è una cosa semplice. Questo articolo è da una banana. Hack: 1.
# (per lui, mica per te) allora, e solo allora, lui farà fare al PC quello che tu dici!
# Non saprà se quello che dici ha senso, ma lo farà eseguire, proprio come se il tuo PC
# fosse uno scimpanzè ammaestrato. Ci son diverse cose che sa fare. Di queste, chissà quante
# ne valgono una banana. E quante meno. L'intreprete può parlare diversi linguaggi... ma
# anche dialetti. Oggi parleremo in bash. Che responsabilità, questo scimpanzè. Se sono root
# posso anche fargli venire una specie di ischemia! (kill -9 -1) Bisogna saperlo trattare, mica
# facile. È simpatico, gli piace giocare con me. Il mio si chiama ZERO.
# Giochiamo.
# ZERO, ascoltami.. andiamo nella cartella /tmp
cd /tmp
# Ehm.. Per giocare, useremo un file di nome 'index.html'
# se esiste gia', sarebbe meglio lo cancellassi.. ;)
[ -e 'index.html' ] && rm -f index.html
# Esiste un sito, che mi dice semplicemente il mio indirizzo IP.
# Si chiama...
wget -q www.myip.dk
# .. il programma 'wget', come qualsiasi comando, restituisce un valore.. lo sai.
# Se quel valore e' 0, allora e' andato tutto ok nell'eseguirlo. Pertanto..
if [ "$?" == 0 ] ; then
# 'wget' crea un file di nome 'index.html'
# il nosto indirizzo IP e' celato in HTML ed e' scritto in grassetto.
tmpmyip=$(grep '' index.html | awk -F '<b>' {'print $2'} | awk -F '<b>' {'print $1'} )
#
# (in realta', potrebbe esser scritto in piu' volte, ci serve solo la prima)
myip=$( echo $tmpmyip | awk -F ' ' {'print $1'} )
# Tu, ZERO, sai che indirizzo avevamo prima? Io non lo so.
# Se non esiste il file dove lo andrei a salvare, dicendoti questo..
if [ ! -e /tmp/.lastip ] ; then
# ..allora il mio ultimo IP e' nullo.
lastip=""
# Altrimenti lo potresti leggere proprio dal file dove lo salverei..
else
lastip=$(cat /tmp/.lastip)
fi
# Anzi. Ricordati adesso questo IP. Segnatelo, e non pensarci piu'. ;)
echo $myip > /tmp/.lastip
# Adesso guardiamo gli indirizzi.
# Se sono uguali,
# probabilmente la nostra connessione era gia' attiva..
# PRIMA di eseguire questo script.
if [ "$lastip" == "$myip" ] ; then
# Dimmelo.
# Scrivo su un file quello che vorrei che TU, ZERO, dicessi..
# (ZERO parla inglese.)
echo "connection is still up" > /tmp/saythis
# ..e tu leggimelo.
festival --tts /tmp/saythis
# Magari, potresti anche dirmi che il mio IP non e' cambiato.
echo "I P is not changed" | festival --tts
# Successivamente cancella quel file..
rm -rf /tmp/saythis
# Se invece gli indirizzi IP sono diversi (quello attuale con quello precedente)..
# Beh..
else
# In primis sono connesso. Eureka!
# Per cui, ZERO, dimmi che la mia connessione e' su..
echo "connection is up" > | festival --tts
# .. ma dimmi anche che il mio IP e' cambiato!
echo "your I P seems changed" | festival --tts
#
# Capito, caro ZERO?
fi
# Nulla di speciale. E' che ogni tanto, la connessione va giu'.
# Controllala, per favore.
#
# Dimenticavo..
# Ricordi 'wget'? Se il programma 'wget' non restituisce 0,
# ma un valore diverso..
else
# Mi piacerebbe mi dicessi che la connessione e' giu'.
echo "connection is down! cannot resolve names" | festival --tts
# In oltre, se la connessione e' giu', mi piacerebbe controllassi
# ancora una volta.. Magari tra trenta secondi..
#
# (Ricordami: se volessi cambiare il tempo di attesa,
# potrei cambiare idea a riguardo, te lo direi adesso)
sleep 30s
# Per controllare ancora una volta, semplicemente
# esegui ancora quello che ti ho appena detto.
. $0
# Capito, Zero?
fi
#
# Cosa e' quello che ti ho appena detto?
# Chiamalo /bin/controlla-connessione
# Anzi.. almeno questo lo faccio io per te.. ;)
#
# Visto che ci sono, cambio anche i permessi
# (chmod o+x /bin/controlla-connessione) cosi' che,
# per te, sia uno script exeguibile..
#
# Bravo, amico mio.. Ecco una banana. :)
# Adesso.. Beh..
# esegui 'controlla-connessione' tutte le volte che lo dico all'interprete..
#
#
# Questo e' quanto volevo dire anche a ZERO.
Se anche i vostri pinguini parlano la lingua di ZERO e utilizzano gli stessi programmi liberi che lui usa, allora, provate a dire loro di fare altrettanto. Sono sicuro che ne siete capaci. Addirittura a modo VOSTRO! Questo non e' un hack. È un semplice script. L'hack, è scritto fuori dal commento. Spero di non vedere un flame sul termine. Tutti noi abbiamo
IL dizionaro e sappiamo cosa vuol dire
hack, non soltanto
cosa significa. Ma sappiamo anche
HANC?Questo credo, un poco meno. Grazie della lettura. Questo è quanto volevo dire a voi. Non a ZERO. Lui, stranamente lo sa.